package anc.tankshooter.models;

import anc.tankshooter.GameSetting;
import anc.tankshooter.map.GameMap;

/**
 * Dối tượng tượng trưng cho xe tăng nguoi chơi.
 * @author tauitdnmd
 *
 */
public class Tank extends ITank {

	/**
	 * Biến này cho biết người điều khiển nhấn
	 * move
	 */
	private boolean mIsMoveAction;
	
	public Tank(int startFrame,float pX, float pY) {
		super(pX, pY);
		
		this.setCurrentTileIndex(0);
		this.animate(new long[] { 100, 100, 100, 100, 100, 100, 100, 100 },
					new int[] {startFrame*8+ 0,startFrame*8+ 1, startFrame*8+2,startFrame*8+ 3,startFrame*8+ 4,startFrame*8+ 5, startFrame*8+6,startFrame*8+ 7 },true);
		setSpeed(GameSetting.SPEED_TANK);
	}
	
	public Tank(float pX, float pY) {
		super(pX, pY);
		
		this.setCurrentTileIndex(0);
		this.animate(new long[] { 100, 100, 100, 100, 100, 100, 100, 100 },
					new int[] { 0, 1, 2, 3, 4, 5, 6, 7 },true);
		setSpeed(GameSetting.SPEED_TANK);
	}

	@Override
	public void reset() {
		super.reset();
		mIsMoveAction=false;
	}

	@Override
	public void onUpdate(GameMap map, float elapseSecond) {
		int[][] matrix = map.getMatrix();
		if(mIsMoveAction){
			if(checkMove(map)){
				matrix[nPY][nPX] = 1;
				isMoving = true;
			}
			mIsMoveAction = false;
		}
		super.onUpdate(map, elapseSecond);
	}
	
	public void doMove(){
		mIsMoveAction = true;
	}
	
}
